#include<iostream>
#include<map>
#include<vector>
using namespace std;
class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        //使用哈希表解决
        map<int,int> hash;
        int n = nums.size();
        vector<int> ret;
        for(int i = 0;i<n;i++)
        {
            hash[nums[i]] = i;
        }//将所有值和他对应的下标放入到哈希表
        for(int i = 0;i<nums.size();i++)
        {
            int tar = target - nums[i];//需要找到这个值
            if(hash.find(tar)!=hash.end()&&hash[tar]!=i)
            {
                //如果存在这个值并且这个值的下标不是i本身
                //这就是一个符合条件的值
                ret.push_back(i);
                ret.push_back(hash[tar]);
                break;
            }
        }
        return ret;
    }
};